package com.jf.cloud.service.sysmanager.constant;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * TODO 赛事状态基础常量
 */
public enum MatchConstant {

	/**
	 * 未开始
	 */
	MATCH_STATE_10(10, "未开始"),
	/**
	 * 报名中
	 */
	MATCH_STATE_30(30, "报名中"),
	/**
	 * 准备中
	 */
	MATCH_STATE_40(40, "准备中"),
	/**
	 * 比赛中
	 */
	MATCH_STATE_50(50, "比赛中"),
	/**
	 * 战绩确认中
	 */
	MATCH_STATE_60(60, "战绩确认中"),
	/**
	 * 已结束
	 */
	MATCH_STATE_70(70, "已结束"),
	/**
	 * 已取消
	 */
	MATCH_STATE_80(80, "已取消"),

	/**
	 * 比赛类型
	 */
	MATCH_TYPE_2(2, "单排"),
	/**
	 * 比赛类型
	 */
	MATCH_TYPE_3(3, "双排"),
	/**
	 * 比赛类型
	 */
	MATCH_TYPE_4(4, "四排"),
	/**
	 * 比赛类型
	 */
	MATCH_TYPE_5(5, "八排");

	/**
	 * 数据字典ID
	 */
	private Integer id;

	/**
	 * 数据字典名称
	 */
	private String name;

	private MatchConstant(Integer id, String name) {
		this.id = id;
		this.name = name;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	/**
	 * 通过ID 查找名字
	 */
	public static String findName(Integer Id) {
		MatchConstant[] tyList = MatchConstant.values();
		for (int i = 0; i < tyList.length; i++) {
			if (tyList[i] != null && tyList[i].id.equals(Id)) {
				return tyList[i].name;
			}
		}
		return "";
	}

	/**
	 * 验证ID是否存在
	 * 
	 * @author 朱建文 创建时间：2018年4月8日 下午3:36:31
	 */
	public static boolean isExist(String id){
		MatchConstant[] tyList = MatchConstant.values();
		for (int i = 0; i < tyList.length; i++) {
			if (tyList[i] != null && (tyList[i].id + "").equals(id)) {
				return true;
			}
		}
		return false;
	}
	
	/**
	 * 获取数据字典选项列表
	 */
	public static List<Map<String, Object>> getDataDictList() {
		List<Map<String, Object>> dataDictList = new ArrayList<Map<String, Object>>();
		for (MatchConstant e : MatchConstant.values()) {
			Map<String, Object> option = new HashMap<String, Object>();
			option.put("value", e.getId());
			option.put("label", e.getName());
			dataDictList.add(option);
		}
		return dataDictList;
	}

	/**
	 * 重写父类方法
	 */
	public String toString() {
		return this.name;
	}

}